সি# এবং ASP.NET ব্যবহার করে কিছু প্র্যাকটিস প্রোজেক্টের আইডিয়া নিচে দেওয়া হলো, যা অ্যাডভান্সড টপিকগুলো এবং প্রোগ্রামিং দক্ষতা বাড়াতে সহায়ক হতে পারে।
একটি টাস্ক ম্যানেজমেন্ট অ্যাপ তৈরি করতে পারেন, যেখানে ব্যবহারকারী তাদের দৈনন্দিন কাজগুলো যুক্ত, আপডেট, এবং মুছতে পারবে।
ফিচার:
টপিকস:
একটি ছোট ই-কমার্স ওয়েবসাইট তৈরি করুন, যেখানে পণ্য প্রদর্শন, কার্ট সিস্টেম এবং চেকআউট ফিচার থাকবে।
ফিচার:
টপিকস:
একটি ব্লগিং প্ল্যাটফর্ম তৈরি করতে পারেন, যেখানে ব্যবহারকারীরা নিবন্ধন করে ব্লগ পোস্ট করতে পারে।
ফিচার:
টপিকস:
SignalR ব্যবহার করে রিয়েল-টাইম চ্যাট অ্যাপ তৈরি করতে পারেন।
ফিচার:
টপিকস:
একটি ফাইল শেয়ারিং অ্যাপ তৈরি করতে পারেন, যেখানে ব্যবহারকারী ফাইল আপলোড এবং ডাউনলোড করতে পারে।
ফিচার:
টপিকস:
লাইব্রেরি ব্যবস্থাপনা সিস্টেম তৈরি করুন, যেখানে বইয়ের সংরক্ষণ, রেকর্ড ম্যানেজমেন্ট এবং রেজিস্ট্রেশন থাকবে।
ফিচার:
টপিকস:
অ্যাপয়েন্টমেন্ট সেটিং এবং রিমাইন্ডার ফিচার সহ একটি ম্যানেজমেন্ট সিস্টেম তৈরি করুন।
ফিচার:
টপিকস:
প্রত্যেকটি প্রোজেক্টে সি# এর বিভিন্ন অ্যাডভান্সড টপিকের ব্যবহার এবং প্র্যাকটিসের সুযোগ রয়েছে, যা প্রোগ্রামিং দক্ষতা এবং প্রকল্পের অভিজ্ঞতা বৃদ্ধিতে সহায়ক হবে।
C# ব্যবহার করে একটি ক্যালকুলেটর অ্যাপ তৈরি করা একটি শিক্ষণীয় প্রজেক্ট, যা বেসিক গাণিতিক অপারেশন যেমন যোগ, বিয়োগ, গুণ, ভাগ ইত্যাদি সম্পন্ন করতে সহায়তা করে। এখানে আমরা Windows Forms Application ব্যবহার করে একটি সাধারণ ক্যালকুলেটর অ্যাপ তৈরি করব।
১. Visual Studio ওপেন করুন। ২. File > New > Project এ যান। ৩. Windows Forms App (.NET Framework) নির্বাচন করুন এবং Next এ ক্লিক করুন। ৪. প্রজেক্টের নাম দিন যেমন, CalculatorApp
এবং Create ক্লিক করুন।
১. ফর্মে একটি TextBox যোগ করুন। এটি ব্যবহারকারী ইনপুট এবং ফলাফল দেখানোর জন্য কাজ করবে।
Name
প্রপার্টি: textBoxResult
ReadOnly
প্রপার্টি: True
২. এরপর, ক্যালকুলেটরের জন্য প্রয়োজনীয় সংখ্যাগুলি (০-৯) এবং অপারেশন বোতামগুলো (যেমন +, -, *, /, =, C) যোগ করুন।
৩. প্রতিটি বোতামের Text এবং Name প্রপার্টি দিন:
button1
, button2
ইত্যাদি রাখুন।buttonAdd
, buttonSubtract
, buttonMultiply
, buttonDivide
ইত্যাদি।=
বোতামের জন্য নাম দিন buttonEquals
এবং C
বোতামের জন্য buttonClear
দিন।প্রতিটি বোতামে ক্লিক ইভেন্ট যোগ করতে হবে এবং সেই ইভেন্টে নির্দিষ্ট কোড লিখতে হবে। নিচে একটি উদাহরণ দেওয়া হলো:
CalculatorApp.cs
কোডusing System;
using System.Windows.Forms;
namespace CalculatorApp
{
public partial class Form1 : Form
{
private string input = ""; // ব্যবহারকারীর ইনপুট ধরে রাখবে
private string operand1 = ""; // প্রথম সংখ্যা
private string operand2 = ""; // দ্বিতীয় সংখ্যা
private char operation; // গাণিতিক অপারেশন (+, -, *, /)
public Form1()
{
InitializeComponent();
}
private void button_Click(object sender, EventArgs e)
{
Button button = (Button)sender;
input += button.Text;
textBoxResult.Text = input;
}
private void buttonOperator_Click(object sender, EventArgs e)
{
Button button = (Button)sender;
operand1 = input;
operation = button.Text[0];
input = "";
}
private void buttonEquals_Click(object sender, EventArgs e)
{
operand2 = input;
double num1, num2, result = 0.0;
// ইনপুট কনভার্ট করা
double.TryParse(operand1, out num1);
double.TryParse(operand2, out num2);
// অপারেশন অনুযায়ী ফলাফল গণনা
switch (operation)
{
case '+':
result = num1 + num2;
break;
case '-':
result = num1 - num2;
break;
case '*':
result = num1 * num2;
break;
case '/':
if (num2 != 0)
result = num1 / num2;
else
MessageBox.Show("Cannot divide by zero.");
break;
}
textBoxResult.Text = result.ToString();
input = result.ToString();
}
private void buttonClear_Click(object sender, EventArgs e)
{
input = "";
operand1 = "";
operand2 = "";
textBoxResult.Text = "0";
}
}
}
button_Click: যেকোনো সংখ্যার বোতাম ক্লিক করলে এই মেথডটি ট্রিগার হয়। এটি input
এ মান যোগ করে এবং textBoxResult
এ দেখায়।
buttonOperator_Click: অপারেটর বোতাম ক্লিক হলে operand1
এ ইনপুটের মান সেট হয় এবং ইনপুট ক্লিয়ার হয়। operation
ভেরিয়েবলটি চিহ্নিত করে কোন অপারেশনটি করা হবে।
buttonEquals_Click: =
বোতাম ক্লিক করলে operand2
এ ইনপুটের মান সেট হয় এবং সঠিক অপারেশন অনুযায়ী ফলাফল গণনা করে textBoxResult
এ দেখানো হয়।
buttonClear_Click: C
বোতাম ক্লিক করলে সমস্ত ইনপুট ও অপারেশন ক্লিয়ার হয় এবং textBoxResult
এ 0
দেখায়।
প্রত্যেকটি বোতামের Click ইভেন্টে এই ইভেন্ট হ্যান্ডলারগুলো যোগ করতে হবে:
button_Click
সংযুক্ত করুন।buttonOperator_Click
সংযুক্ত করুন।=
বোতামে buttonEquals_Click
সংযুক্ত করুন।C
বোতামে buttonClear_Click
সংযুক্ত করুন।এটি করার জন্য, ফর্ম ডিজাইনে প্রতিটি বোতামে ক্লিক করে Properties > Events > Click এ সঠিক মেথড সিলেক্ট করুন।
১. Visual Studio তে Start বা F5
প্রেস করুন। ২. ক্যালকুলেটর অ্যাপ ওপেন হবে, যেখানে গাণিতিক অপারেশনগুলো পরীক্ষা করতে পারবেন।
এইভাবে একটি বেসিক ক্যালকুলেটর অ্যাপ তৈরি করা যায় যা সাধারণ গাণিতিক কাজগুলো সম্পন্ন করতে পারে।
একটি টু-ডু লিস্ট অ্যাপ সি#-এ তৈরি করা একটি চমৎকার প্র্যাকটিস প্রজেক্ট, যা আপনার ASP.NET এবং MVC প্যাটার্নের দক্ষতা বাড়াতে সাহায্য করবে। এই অ্যাপে ব্যবহারকারীরা তাদের দৈনন্দিন কাজগুলো যুক্ত, আপডেট, এবং মুছতে পারবে। এছাড়াও কাজগুলোকে কমপ্লিট বা ইনকমপ্লিট হিসেবে চিহ্নিত করতে পারবে।
Visual Studio বা .NET CLI ব্যবহার করে ASP.NET Core MVC প্রজেক্ট তৈরি করুন:
dotnet new mvc -o TodoApp
প্রজেক্টের Models ফোল্ডারে TodoItem
নামে একটি ক্লাস তৈরি করুন, যেখানে প্রতিটি টাস্কের জন্য প্রয়োজনীয় প্রোপার্টি থাকবে।
public class TodoItem
{
public int Id { get; set; }
public string Title { get; set; }
public bool IsCompleted { get; set; }
public DateTime CreatedAt { get; set; } = DateTime.Now;
}
TodoContext নামে একটি DbContext ক্লাস তৈরি করুন, যা TodoItem
মডেলের সাথে ডেটাবেস কানেক্ট করবে।
using Microsoft.EntityFrameworkCore;
public class TodoContext : DbContext
{
public TodoContext(DbContextOptions<TodoContext> options) : base(options) { }
public DbSet<TodoItem> TodoItems { get; set; }
}
Startup.cs ফাইলে ConfigureServices
মেথডে DbContext যুক্ত করুন:
public void ConfigureServices(IServiceCollection services)
{
services.AddDbContext<TodoContext>(options =>
options.UseSqlite("Data Source=todo.db"));
services.AddControllersWithViews();
}
dotnet ef migrations add InitialCreate
dotnet ef database update
TodoController নামে একটি কন্ট্রোলার তৈরি করুন, যা CRUD অপারেশন পরিচালনা করবে।
using Microsoft.AspNetCore.Mvc;
using System.Linq;
using System.Threading.Tasks;
public class TodoController : Controller
{
private readonly TodoContext _context;
public TodoController(TodoContext context)
{
_context = context;
}
public async Task<IActionResult> Index()
{
var todos = await _context.TodoItems.ToListAsync();
return View(todos);
}
[HttpPost]
public async Task<IActionResult> Create(TodoItem todo)
{
if (ModelState.IsValid)
{
_context.Add(todo);
await _context.SaveChangesAsync();
return RedirectToAction(nameof(Index));
}
return View(todo);
}
public async Task<IActionResult> Edit(int id)
{
var todo = await _context.TodoItems.FindAsync(id);
if (todo == null)
{
return NotFound();
}
return View(todo);
}
[HttpPost]
public async Task<IActionResult> Edit(TodoItem todo)
{
if (ModelState.IsValid)
{
_context.Update(todo);
await _context.SaveChangesAsync();
return RedirectToAction(nameof(Index));
}
return View(todo);
}
public async Task<IActionResult> Delete(int id)
{
var todo = await _context.TodoItems.FindAsync(id);
if (todo != null)
{
_context.TodoItems.Remove(todo);
await _context.SaveChangesAsync();
}
return RedirectToAction(nameof(Index));
}
[HttpPost]
public async Task<IActionResult> ToggleComplete(int id)
{
var todo = await _context.TodoItems.FindAsync(id);
if (todo != null)
{
todo.IsCompleted = !todo.IsCompleted;
await _context.SaveChangesAsync();
}
return RedirectToAction(nameof(Index));
}
}
Views/Todo/Index.cshtml ফাইলে টু-ডু লিস্ট প্রদর্শনের জন্য HTML কোড লিখুন।
@model IEnumerable<TodoItem>
<h2>Todo List</h2>
<form asp-action="Create" method="post">
<input type="text" name="Title" placeholder="Enter new task" required />
<button type="submit">Add Task</button>
</form>
<table>
<thead>
<tr>
<th>Task</th>
<th>Status</th>
<th>Actions</th>
</tr>
</thead>
<tbody>
@foreach (var todo in Model)
{
<tr>
<td>@todo.Title</td>
<td>
<form asp-action="ToggleComplete" method="post">
<input type="hidden" name="id" value="@todo.Id" />
<button type="submit">@((todo.IsCompleted ? "Completed" : "Incomplete"))</button>
</form>
</td>
<td>
<a asp-action="Edit" asp-route-id="@todo.Id">Edit</a> |
<a asp-action="Delete" asp-route-id="@todo.Id">Delete</a>
</td>
</tr>
}
</tbody>
</table>
Bootstrap ব্যবহার করে CSS স্টাইল যোগ করুন, যাতে ইন্টারফেস আরও আকর্ষণীয় দেখায়।
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css">
প্রজেক্ট রান করতে dotnet run
কমান্ডটি ব্যবহার করুন অথবা Visual Studio থেকে Run ক্লিক করুন। তারপর ব্রাউজারে https://localhost:5001/Todo
এ যান।
অ্যাপটি আরও উন্নত করতে কিছু অতিরিক্ত ফিচার যোগ করতে পারেন:
এই প্রোজেক্টটি ASP.NET Core এর MVC প্যাটার্ন, Entity Framework এবং ডিপেনডেন্সি ইনজেকশনের ব্যবহার শেখার জন্য চমৎকার একটি প্র্যাকটিস।
একটি কন্টাক্ট ম্যানেজমেন্ট সিস্টেম তৈরি করা খুবই উপকারী, যা ব্যবহারকারীদের বিভিন্ন ব্যক্তির যোগাযোগের তথ্য সংরক্ষণ, সন্ধান, আপডেট এবং মুছে ফেলার সুযোগ প্রদান করে। এই প্রজেক্টটি তৈরি করতে Windows Forms Application এবং SQLite ডাটাবেস ব্যবহার করা যায়।
১. Visual Studio ওপেন করুন। ২. File > New > Project এ যান। ৩. Windows Forms App (.NET Framework) নির্বাচন করুন এবং Next এ ক্লিক করুন। ৪. প্রজেক্টের নাম দিন যেমন, ContactManagementSystem
এবং Create ক্লিক করুন।
১. Visual Studio এর Package Manager Console ওপেন করুন। ২. নিচের কমান্ডটি রান করে System.Data.SQLite প্যাকেজ ইন্সটল করুন:
Install-Package System.Data.SQLite
Contacts.db নামে একটি SQLite ডাটাবেস তৈরি করুন এবং এতে একটি Contacts টেবিল যোগ করুন। এই টেবিলটি ID, Name, Phone, এবং Email ফিল্ড নিয়ে গঠিত হবে।
CREATE TABLE Contacts (
ID INTEGER PRIMARY KEY AUTOINCREMENT,
Name TEXT NOT NULL,
Phone TEXT,
Email TEXT
);
কন্টাক্ট ম্যানেজমেন্ট সিস্টেমের UI ডিজাইন করার জন্য Windows Form এ নিচের উপাদানগুলো যোগ করুন:
TextBox: Name, Phone, এবং Email ইনপুট নেয়ার জন্য।
textBoxName
textBoxPhone
textBoxEmail
Button: বিভিন্ন কার্যক্রম সম্পন্ন করার জন্য।
DataGridView: কন্টাক্ট লিস্ট দেখানোর জন্য।
Form1.cs
ফাইলে নিচের কোড যোগ করুন, যা ডাটাবেস কানেকশন এবং CRUD অপারেশন সম্পন্ন করবে।
using System;
using System.Data;
using System.Data.SQLite;
using System.Windows.Forms;
namespace ContactManagementSystem
{
public partial class Form1 : Form
{
private SQLiteConnection connection;
public Form1()
{
InitializeComponent();
connection = new SQLiteConnection("Data Source=Contacts.db;Version=3;");
LoadContacts();
}
private void LoadContacts()
{
try
{
connection.Open();
string query = "SELECT * FROM Contacts";
SQLiteDataAdapter adapter = new SQLiteDataAdapter(query, connection);
DataTable dt = new DataTable();
adapter.Fill(dt);
dataGridViewContacts.DataSource = dt;
}
finally
{
connection.Close();
}
}
}
}
private void buttonAdd_Click(object sender, EventArgs e)
{
try
{
connection.Open();
string query = "INSERT INTO Contacts (Name, Phone, Email) VALUES (@Name, @Phone, @Email)";
SQLiteCommand command = new SQLiteCommand(query, connection);
command.Parameters.AddWithValue("@Name", textBoxName.Text);
command.Parameters.AddWithValue("@Phone", textBoxPhone.Text);
command.Parameters.AddWithValue("@Email", textBoxEmail.Text);
command.ExecuteNonQuery();
MessageBox.Show("Contact added successfully!");
}
finally
{
connection.Close();
LoadContacts();
}
}
private void buttonUpdate_Click(object sender, EventArgs e)
{
try
{
connection.Open();
string query = "UPDATE Contacts SET Name=@Name, Phone=@Phone, Email=@Email WHERE ID=@ID";
SQLiteCommand command = new SQLiteCommand(query, connection);
command.Parameters.AddWithValue("@ID", GetSelectedContactID());
command.Parameters.AddWithValue("@Name", textBoxName.Text);
command.Parameters.AddWithValue("@Phone", textBoxPhone.Text);
command.Parameters.AddWithValue("@Email", textBoxEmail.Text);
command.ExecuteNonQuery();
MessageBox.Show("Contact updated successfully!");
}
finally
{
connection.Close();
LoadContacts();
}
}
private void buttonDelete_Click(object sender, EventArgs e)
{
try
{
connection.Open();
string query = "DELETE FROM Contacts WHERE ID=@ID";
SQLiteCommand command = new SQLiteCommand(query, connection);
command.Parameters.AddWithValue("@ID", GetSelectedContactID());
command.ExecuteNonQuery();
MessageBox.Show("Contact deleted successfully!");
}
finally
{
connection.Close();
LoadContacts();
}
}
private void buttonSearch_Click(object sender, EventArgs e)
{
try
{
connection.Open();
string query = "SELECT * FROM Contacts WHERE Name LIKE @Name";
SQLiteDataAdapter adapter = new SQLiteDataAdapter(query, connection);
adapter.SelectCommand.Parameters.AddWithValue("@Name", "%" + textBoxName.Text + "%");
DataTable dt = new DataTable();
adapter.Fill(dt);
dataGridViewContacts.DataSource = dt;
}
finally
{
connection.Close();
}
}
DataGridView
থেকে নির্বাচিত কন্টাক্টের ID
সংগ্রহ করতে নিচের মেথডটি ব্যবহার করুন:
private int GetSelectedContactID()
{
if (dataGridViewContacts.SelectedRows.Count > 0)
{
return Convert.ToInt32(dataGridViewContacts.SelectedRows[0].Cells["ID"].Value);
}
else
{
throw new Exception("Please select a contact.");
}
}
প্রত্যেকটি বোতামের Click ইভেন্টে সঠিক মেথডটি সংযুক্ত করুন:
buttonAdd_Click
মেথড।buttonUpdate_Click
মেথড।buttonDelete_Click
মেথড।buttonSearch_Click
মেথড।Visual Studio তে Start বা F5
প্রেস করুন। কন্টাক্ট ম্যানেজমেন্ট অ্যাপ ওপেন হবে যেখানে:
এই কন্টাক্ট ম্যানেজমেন্ট সিস্টেম ব্যবহারকারীর যোগাযোগ তথ্য সংরক্ষণ এবং পরিচালনার জন্য একটি সহজ এবং কার্যকরী সমাধান প্রদান করে।
ডেটাবেস ম্যানেজমেন্ট সিস্টেম (Database Management System বা DBMS) হলো এমন একটি সফটওয়্যার, যা ডেটাবেস তৈরি, পরিচালনা এবং নিয়ন্ত্রণ করতে সাহায্য করে। DBMS ব্যবহার করে ডেটা সংরক্ষণ, সংগঠন এবং ম্যানিপুলেট করা সহজ হয়। এর মাধ্যমে ডেটা দ্রুত অ্যাক্সেস করা যায় এবং বিভিন্ন ব্যবহারকারীকে ডেটা ব্যবহারের সুযোগ দেয়া যায়।
DBMS কে সাধারণত চার ধরনের শ্রেণীতে ভাগ করা হয়:
হায়ারার্কিক্যাল DBMS: ডেটা একটি গাছের মতো স্ট্রাকচারে সংরক্ষিত হয় যেখানে প্রতিটি পেরেন্টের এক বা একাধিক চাইল্ড থাকতে পারে, তবে চাইল্ডের একটি মাত্র পেরেন্ট থাকতে পারে। উদাহরণ: IBM Information Management System (IMS)।
নেটওয়ার্ক DBMS: এই ডেটাবেস স্ট্রাকচারে একটি চাইল্ডের একাধিক পেরেন্ট থাকতে পারে, যা একটি জটিল নেটওয়ার্ক গঠন করে। উদাহরণ: Integrated Data Store (IDS)।
রিলেশনাল DBMS (RDBMS): রিলেশনাল ডেটাবেস টেবিল বা রিলেশনের মাধ্যমে ডেটা সংরক্ষণ করে। SQL ব্যবহার করে ডেটা ম্যানিপুলেট করা হয়। উদাহরণ: MySQL, PostgreSQL, SQL Server, Oracle।
অবজেক্ট-ওরিয়েন্টেড DBMS: অবজেক্ট-ওরিয়েন্টেড প্রোগ্রামিং কনসেপ্টের ভিত্তিতে অবজেক্ট আকারে ডেটা সংরক্ষণ করে। উদাহরণ: ObjectDB, db4o।
বৈশিষ্ট্য | DBMS | RDBMS |
---|---|---|
ডেটা স্টোরেজ | ফাইল বা ডেটা স্ট্রাকচারে ডেটা সংরক্ষণ | টেবিল আকারে ডেটা সংরক্ষণ |
ডেটা সম্পর্ক | ডেটা সম্পর্ক নির্দিষ্ট নয় | ডেটার মধ্যে সম্পর্ক সংজ্ঞায়িত |
ডেটা ইন্টিগ্রিটি | সীমিত ইন্টিগ্রিটি নিয়ম | শক্তিশালী ডেটা ইন্টিগ্রিটি নিয়ম |
মাল্টি-ইউজার সাপোর্ট | সাধারণত সিঙ্গেল ইউজার | মাল্টি-ইউজার সাপোর্ট |
SQL সমর্থন | সাধারণত SQL সমর্থন করে না | সম্পূর্ণ SQL সমর্থন |
উদাহরণ | Microsoft Access, FileMaker | MySQL, PostgreSQL, Oracle, SQL Server |
ধরা যাক, আমরা একটি স্টুডেন্ট ম্যানেজমেন্ট সিস্টেম তৈরি করতে চাই। এখানে আমরা RDBMS ব্যবহার করে নিচের স্টেপগুলো অনুসরণ করতে পারি:
ডাটাবেজ এবং টেবিল তৈরি:
Students
নামে টেবিল তৈরি করি, যেখানে ID
, Name
, Age
, এবং Course
কলাম থাকবে।ডেটা যুক্ত করা:
ডেটা আপডেট করা:
ডেটা মুছে ফেলা:
ডেটা অনুসন্ধান করা:
এই প্রোজেক্টে DBMS ব্যবহার করে ডেটা পরিচালনা এবং ম্যানিপুলেট করা হয়েছে।
DBMS হলো এমন একটি সফটওয়্যার সিস্টেম যা ডেটাবেস তৈরি, নিয়ন্ত্রণ এবং পরিচালনা করতে সহায়ক। এটি ডেটার নিরাপত্তা এবং বহুব্যবহারকারী সুবিধা প্রদান করে। RDB
উইন্ডোজ ফর্ম অ্যাপ্লিকেশন তৈরি করতে Visual Studio ব্যবহার করা একটি সহজ এবং জনপ্রিয় পদ্ধতি, যা ডেস্কটপ অ্যাপ্লিকেশন তৈরির জন্য আদর্শ। Windows Forms এর ড্র্যাগ-এন্ড-ড্রপ ফিচার ব্যবহার করে GUI তৈরি করা সহজ হয়, এবং এটি বিভিন্ন ধরনের ডেস্কটপ অ্যাপ্লিকেশন তৈরি করতে সহায়ক। নিচে একটি সাধারণ উইন্ডোজ ফর্ম অ্যাপ্লিকেশন তৈরির ধাপগুলি বর্ণনা করা হলো।
১. Visual Studio ওপেন করুন। ২. File > New > Project এ যান। ৩. Windows Forms App (.NET Framework) নির্বাচন করুন এবং Next এ ক্লিক করুন। ৪. প্রজেক্টের নাম লিখুন যেমন MyWindowsApp
এবং Create ক্লিক করুন।
Windows Forms Designer এর মাধ্যমে আপনি বিভিন্ন কন্ট্রোল যেমন Button, Label, TextBox, এবং DataGridView সহজেই ফর্মে যোগ করতে পারবেন।
১. Toolbox থেকে নিচের উপাদানগুলো ফর্মে ড্র্যাগ করে রাখুন:
২. প্রতিটি কন্ট্রোলের জন্য প্রয়োজনীয় Properties সেট করুন। উদাহরণস্বরূপ, Label এর Text প্রপার্টি, TextBox এর Name প্রপার্টি textBoxInput
হিসেবে দিন, এবং Button এর Text প্রপার্টি Click Me
দিন।
UI তে যোগ করা কন্ট্রোলের জন্য ইভেন্ট হ্যান্ডলার তৈরি করতে হবে। ধরুন, আপনি একটি Button এর Click ইভেন্ট হ্যান্ডলার তৈরি করতে চান।
১. Button এ ডাবল ক্লিক করুন। এতে স্বয়ংক্রিয়ভাবে ইভেন্ট হ্যান্ডলার তৈরি হবে। ২. নিচের কোডটি buttonClick
ইভেন্ট হ্যান্ডলার ফাংশনে লিখুন:
private void buttonClick_Click(object sender, EventArgs e)
{
string inputText = textBoxInput.Text;
MessageBox.Show("Hello, " + inputText + "!");
}
textBoxInput.Text
ব্যবহার করে TextBox এ লেখা ইনপুট নেওয়া হয়েছে।MessageBox.Show
দিয়ে একটি পপআপ দেখানো হয়েছে যেখানে ইনপুটের ওপর ভিত্তি করে একটি বার্তা দেখানো হয়েছে।১. Visual Studio তে Start বা F5
প্রেস করুন। ২. আপনার তৈরি অ্যাপ্লিকেশনটি রান হবে এবং আপনি এর ইন্টারফেস ব্যবহার করতে পারবেন।
এবার একটি সহজ ক্যালকুলেটর অ্যাপ তৈরি করা যাক যেখানে দুইটি সংখ্যা যোগফল দেখাবে।
১. ফর্মে নিচের কন্ট্রোলগুলো যোগ করুন:
label1
, Text = "Number 1"label2
, Text = "Number 2"textBoxNumber1
textBoxNumber2
buttonAdd
, Text = "Add"labelResult
, Text = "Result: "buttonAdd
এর Click ইভেন্টে নিচের কোডটি লিখুন:
private void buttonAdd_Click(object sender, EventArgs e)
{
try
{
// TextBox থেকে সংখ্যা সংগ্রহ করা
int number1 = int.Parse(textBoxNumber1.Text);
int number2 = int.Parse(textBoxNumber2.Text);
// যোগফল গণনা
int result = number1 + number2;
// ফলাফল প্রদর্শন
labelResult.Text = "Result: " + result.ToString();
}
catch (Exception ex)
{
MessageBox.Show("Please enter valid numbers.");
}
}
textBoxNumber1
এবং textBoxNumber2
এর ইনপুটকে int
এ কনভার্ট করা হয়েছে।labelResult
এ প্রদর্শন করা হয়েছে।Visual Studio তে Start বা F5
প্রেস করুন এবং ইনপুট দিয়ে যোগফল পরীক্ষা করুন।
এইভাবে Windows Forms Application ব্যবহার করে একটি সাধারণ ডেস্কটপ অ্যাপ্লিকেশন তৈরি করা যায়, যা ব্যবহারকারীর ইনপুট নিয়ে তাদের প্রয়োজন অনুযায়ী কাজ সম্পন্ন করতে পারে।
আরও দেখুন...